package com.sjms._10_结构_组合模式;

/**
 * 组合模式
 * 将对象组合成树结构，表示 “部分与整体” 的关系
 * 要求 部分与整体，具备相同的父类
 * <p>
 * 代码实现
 * 输出当前目录下，全部目录层级和文件内容，已试树形结构展示
 * 1.抽象节点类 Node（ type=(目录、文件) 、path、fileName）
 * 2.创建方法， 添加节点（）、遍历当前树结构（）
 * 3.客户端创建多个节点，节点添加节点，遍历根节点的当前树结构
 */
public class _Test {

    public static void main(String[] args) {
        Directory gen = new Directory("根目录", "C", 0);
        gen.add(new File("文件1001", "C", 1));
        gen.add(new File("文件1002", "C", 1));

        Directory directory2 = new Directory("目录2", "C", 1);
        directory2.add(new File("文件 2003", "C", 2));
        directory2.add(new File("文件 2004", "C", 2));

        gen.add(directory2);

        gen.print();

    }

}
